من بعد اللى حصل في اسكندرية 


كل التفاعلات:
٥٣ تعليقات
أعجبني
تعليق
مشاركة
<?php namespace App\Http\Controllers\Admin; use App\Traits\Report; use App\Models\Category ; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Category\Store; class CategoryController extends Controller { /*************************** get all **************************/ public function index() { $rows = Category::latest()->where('category_id' , null)->get(); return view('admin.categories.index', compact('rows')); } public function subcategories($id) { $rows = Category::where('category_id' , $id)->get(); return view('admin.categories.subcategory', compact('rows' , 'id')); } /*************************** store **************************/ public function create($id = null) { $categories = Category::latest()->get(); return view('admin.categories.create' , compact('categories')); } /*************************** store **************************/ public function store(Store $request) { Category::create($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] , ])); Report::addToLog(' اضافه قسم') ; return response()->json(['url' => route('admin.categories.index')]); } /*************************** edit page **************************/ public function edit($id) { $row = Category::findOrFail($id); $categories = Category::latest()->get(); return view('admin.categories.edit' , ['row' => $row , 'categories' => $categories]); } /*************************** update **************************/ public function update(Store $request, $id) { $row = Category::findOrFail($id)->update($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] , 'description' => ['ar' => $request->description_ar , 'en' => $request->description_en] , ])); Report::addToLog(' تعديل قسم') ; return response()->json(['url' => route('admin.categories.index')]); } /*************** show *************************************/ public function show($id) { $row = Category::findOrFail($id); $categories = Category::get(); return view('admin.categories.show' , ['row' => $row , 'categories' => $categories]); } /*************************** delete **************************/ public function destroy($id) { $row = Category::findOrFail($id)->delete(); Report::addToLog(' حذف قسم') ; return response()->json(['id' =>$id]); } public function destroyAll(Request $request) { $requestIds = json_decode($request->data); foreach ($requestIds as $id) { $ids[] = $id->id; } if (Category::WhereIn('id',$ids)->delete()) { Report::addToLog(' حذف العديد من الاقسام') ; return response()->json('success'); } else { return response()->json('failed'); } } }
ده الكوتنرولر بتاع الداش بورد
<?php namespace App\Models; use App\Traits\Uploadable; use Illuminate\Database\Eloquent\Model; use Spatie\Translatable\HasTranslations; use Illuminate\Database\Eloquent\Factories\HasFactory; class Category extends Model { use HasFactory, HasTranslations , Uploadable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['name' , 'image' , 'slug' , 'category_id' , 'status','description']; public $translatable = ['name','description']; public function getImagePathAttribute() { return asset('assets/uploads/categories/' . $this->image); } public function setImageAttribute($value) { if ( null != $value && is_file($value) ) { $this->attributes['image'] = $this->uploadOne($value, 'categories'); } } public static function boot() { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ self::deleted(function ($model) { $model->deleteFile($model->attributes['image'], 'categories'); }); } }
والcategory_id الى هى parent_id
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateCategoriesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('categories', function (Blueprint $table) { $table->id(); $table->foreignId('category_id')->nullable()->constrained()->references('id')->on('categories')->onDelete('set null'); $table->string('name'); $table->string('description'); $table->string('image'); $table->string('slug'); $table->enum('status',['true','false'])->default('true'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('categories'); } }
ده الى ميجريشين
و نفس الفكره الcategory_id الى هو parent_id


